﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Lists;
using GeneralLibs;

namespace ListForms
{
    public partial class FrmEditPhuongThucThanhToanMuaHang : ListForms.FrmBaseEditForm
    {
        public FrmEditPhuongThucThanhToanMuaHang(PhuongThucThanhToanMuaHang PhuongThuc)
        {
            InitializeComponent();
            _DoiTuong = PhuongThuc;
        }
        protected override void FillData()
        {
            cmbTKMacDinh.DataSource= DanhMucTaiKhoan.GetByLoaiTaiKhoan(LoaiTaiKhoan.TaiKhoanCapThapNhat|LoaiTaiKhoan.NoiBang).DataView;
            cmbTKMacDinh.DisplayColumn = "SoHieu";
            cmbTKMacDinh.ValueColumn = "ID";
            cmbTKMacDinh.AddVisibleColumn("SoHieu", "Số hiệu");
            cmbTKMacDinh.AddVisibleColumn("Ten", "Tên");

            txtMa .Select();
            if (_DoiTuong == null)
            {
                this.Text = "Thêm mới phương thức thanh toán mua thuốc";
                _DoiTuong = DanhMucPhuongThucThanhToanMuaHang.Instance.NewDoiTuong();
                _EditState = EditState.CreatingNew;
            }
            else
            {
                this.Text = "Sửa thông tin phương thức thanh toán mua thuốc";
                txtTen.Text = (_DoiTuong as PhuongThucThanhToanMuaHang).Ten;
                txtMa.Text = (_DoiTuong as PhuongThucThanhToanMuaHang).Ma;
                cmbTKMacDinh.EditValue = (_DoiTuong as PhuongThucThanhToanMuaHang).TaiKhoanThanhToanMacDinh.ID;  
            
                _EditState = EditState.Modifying;
            }
        }

        protected override bool CheckFullInfo()
        {
            if (txtMa.Text == "") throw new CustomException("Chưa điền mã phương thức thanh toán mua thuốc", ExceptionType.LackOfInputInfo);
            if (txtTen.Text == "") throw new CustomException("Chưa điền tên phương thức thanh toán mua thuốc", ExceptionType.LackOfInputInfo);
            if (cmbTKMacDinh.EditValue == null) throw new CustomException("Chưa chọn tài khoản thanh toán mắc định", ExceptionType.LackOfInputInfo);           
            return true;
        }
        protected override void SetDoiTuongProperties()
        {
            (_DoiTuong as PhuongThucThanhToanMuaHang).Ma = txtMa.Text;
            (_DoiTuong as PhuongThucThanhToanMuaHang).Ten = txtTen.Text;
            if (cmbTKMacDinh.EditValue != null)
                (_DoiTuong as PhuongThucThanhToanMuaHang).TaiKhoanThanhToanMacDinh =  DanhMucTaiKhoan.Instance.GetByID((Guid)cmbTKMacDinh.EditValue);            
        }
    }
}
